package com.molihub.mapper;

import com.molihub.entity.FileStoreStatistics;
import com.molihub.entity.MyFile;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
* @ClassName: MyFileMapper
* @Description: TODO
* @author: PJAVAC
* @date 2020/2/8 22:49
* @Version: 1.0
**/
@Repository
@Mapper
public interface MyFileMapper {

    /**
     * @Description 添加文件
     * @Author PJAVAC
     * @Date 2020/2/9 15:50
     * @Param [myFile]
     * @Return Integer
     */
    Integer addFileByFileStoreId(MyFile myFile);

    /**
     * @Description 根据文件id修改文件
     * @Author PJAVAC
     * @Date 2020/2/9 15:55
     * @Param [record]
     * @Return Integer
     */
    Integer updateFileByFileId(MyFile myFile);

    /**
     * @Description 根据文件的id删除文件
     * @Author PJAVAC
     * @Date 2020/2/9 15:49
     * @Param [myFileId]
     * @Return Integer
     */
    Integer deleteByFileId(Integer myFileId);

    /**
     * @Description 根据父文件夹的id删除文件
     * @Author PJAVAC
     * @Date 2020/2/9 15:49
     * @Param [id]
     * @Return Integer
     */
    Integer deleteByParentFolderId(Integer id);

    /**
     * @Description 根据文件的id获取文件
     * @Author PJAVAC
     * @Date 2020/2/9 17:18
     * @Param [fileId]
     * @Return com.molihub.entity.MyFile
     */
    MyFile getFileByFileId(Integer myFileId);

    /**
     * @Description 获得仓库根目录下的所有文件
     * @Author xw
     * @Date 23:53 2020/2/9
     * @Param [fileStoreId]
     * @return java.util.List<com.molihub.entity.MyFile>
     **/
    List<MyFile> getRootFilesByFileStoreId(Integer fileStoreId);
    
    /**
     * @Description 根据父文件夹id获得文件 
     * @Author xw
     * @Date 0:07 2020/2/10
     * @Param [parentFolderId]
     * @return java.util.List<com.molihub.entity.MyFile>
     **/
    List<MyFile> getFilesByParentFolderId(Integer parentFolderId);
    
    /**
     * @Description 获取仓库的统计信息
     * @Author xw
     * @Date 21:47 2020/2/10
     * @Param [id]
     * @return com.molihub.entity.FileStoreStatistics
     **/
    FileStoreStatistics getCountStatistics(Integer id);
}